package xin.marcher.module.lifecycle.converter;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import xin.marcher.module.lifecycle.domain.dto.ItemPeriodStageDTO;
import xin.marcher.module.lifecycle.domain.entity.ItemPeriodStageDO;
import xin.marcher.module.lifecycle.domain.request.ItemPeriodRequest;

import java.util.List;

/**
 *
 */
@Mapper(componentModel = "spring")
public interface ItemPeriodStageConverter {

    /**
     * 转换request 为 DO
     *
     * @param itemPeriodRequest
     * @return
     */
    @Mapping(target = "updateUser", source = "operateUser")
    ItemPeriodStageDO converterPeriodStageDO(ItemPeriodRequest itemPeriodRequest);

    /**
     * 转换DO为DTO
     *
     * @param itemPeriodStage
     * @return
     */
    @Mapping(target = "productPeriodId", source = "id")
    ItemPeriodStageDTO convertToDTO(ItemPeriodStageDO itemPeriodStage);

    /**
     * 转换DO List为DTO list
     *
     * @param doList
     * @return
     */
    List<ItemPeriodStageDTO> converterDTOList(List<ItemPeriodStageDO> doList);

    /**
     * 转换分页查询商品生命周期信息DO --> DTO
     *
     * @param itemPeriodStagePage
     * @return
     */
    Page<ItemPeriodStageDTO> converterPageResult(Page<ItemPeriodStageDO> itemPeriodStagePage);

}
